﻿using System;
using System.Collections.Generic;
using System.Text;

namespace Ex03.GarageLogic
{
    public class ElectricBike : Bike
    {
        private const float k_ElectricBikeMaximumBatteryLifeInHours = 1.8F;
        private const EnergyType.eEnergyType k_ElectricBikeBatteryType = EnergyType.eEnergyType.NiMHBattery;
        private const int k_ElectricBikeWheelAmount = 2;
        private const float k_ElectricBikeWheelMaximumAirPressure = 31F;
        
        private ElectricPropulsion m_ElectricBikePropulsionType;

        public ElectricBike(
            string i_ElectricBikeModelName,
            string i_ElectricBikeLicenseNumber, 
            eBikePermitType i_ElectricBikePermitType,
            int i_ElectricBikeEngineVolume)
            : base(
            i_ElectricBikeModelName,
            i_ElectricBikeLicenseNumber, 
            k_ElectricBikeWheelAmount,
            k_ElectricBikeWheelMaximumAirPressure,
            i_ElectricBikePermitType, 
            i_ElectricBikeEngineVolume)
        {
            m_ElectricBikePropulsionType = new ElectricPropulsion(k_ElectricBikeBatteryType, k_ElectricBikeMaximumBatteryLifeInHours);
        }

        public override bool AddPropulsionMaterial(
            EnergyType.eEnergyType i_PropulsionMaterialType,
            float i_PropulsionMaterialAmountToAdd)
        {
            return m_ElectricBikePropulsionType.AddPropulsionMaterial(i_PropulsionMaterialType, i_PropulsionMaterialAmountToAdd);
        }

        //public override List<String> CollectQustionsListToAskUser()
        //{
        //    List<String> Qustions = new List<String>();
        //    Qustions = base.CollectQustionsListToAskUser();
        //    Qustions.Add(String.Format("Enter Current Amount Of Fuel :"));

        //    return Qustions;
        //}

        //public override void GetStringsFromUserAndUpdateVehicleData(List<String> i_Answers)
        //{
        //    base.GetStringsFromUserAndUpdateVehicleData(i_Answers);
        ////    m_Engine.CurrentFuelAmountInTankInLitres = 1;
        //}

        //public override List<string> GetAllInformation()
        //{
        //    List<String> ReturnValue = null;
        //    ReturnValue = base.GetAllInformation();
        //    if (ReturnValue == null)
        //    {
        //        ReturnValue = new List<String>();
        //    }

        //    ReturnValue.Insert(0, String.Format("Vehicle Type : Internal Combustion Bus"));

        //    return ReturnValue;
        //}
    }
}
